﻿using System;
using System.Runtime.InteropServices;

using GASS.OpenCL;

namespace Nemerle.OpenCL {

    [HandlePattern(CLContext)]   internal sealed class ContextHandle     : SafeHandle { }

    [HandlePattern(CLMem)]       internal sealed class MemObjectHandle   : SafeHandle { }

    [HandlePattern(CLKernel)]    internal sealed class KernelHandle      : SafeHandle { }

    [HandlePattern(CLProgram)]   internal sealed class ProgramHandle     : SafeHandle { }

    [HandlePattern(CLEvent)]     internal sealed class EventHandle       : SafeHandle { }

    [HandlePattern(CLSampler)]   internal sealed class SamplerHandle     : SafeHandle { }

    [HandlePattern(CLCommandQueue)] internal sealed class CommandQueueHandle : SafeHandle { }

}